#include<stdio.h>
#include<math.h>

/*
解决本实例的关键是，先确定这串连续奇数的最大值的范围，可以这样分析，
任何立方值（这里设为sum）的一半(这里设为x）如果是奇数，则x+x+2的值一定大于sum，那么这串连续奇数的最大值不会超过x;
如果x是偶数，则需把它变成奇数，那么变成奇数到底是加1、减1还是其他呢?这里选择加1，因为x+1+x-1正好等于sum，所以当x是偶数时，这串连续奇数的最大值不会超过x+1。
在确定了范围后就可以从最大值开始进行穷举。
*/
int main()
{
	int num;
	printf("请输入一个数:\n");
	scanf("%d",&num);
	int K=(int)pow(num,3);//任意整数的三次方
	//int K=num*num*num;
	
	if(K==0||K==1) return 0;//不满足条件退出
	
	int temp=K/2;//立方值的一半
	if(temp%2==0) temp+=1;//为偶数加1变奇数
	int cnt=0;
	int sum;
	int i,j,k;
	for(i=temp;i>=1;i-=2)
	{
		sum=0;//置0
		for(j=i;sum<=K;j-=2)//只要sum的值小于K就循环
		{
			sum+=j;//累加求和
			if(sum==K)
			{
				//找到了打印
				printf("%d*%d*%d=%d=%d",num,num,num,K,i);
				for(k=i-2;k>=j;k-=2)
				{
					printf("+%d",k);
				}
				return 0;//找到后就结束程序
			}
		}
		
	}
	
	return 0;
}